from selenium.webdriver.common.by import By

from utils.page_base import PageBase

#UI：表单页
class PageForm(PageBase):
    #元素定位特征
    url="/webzdh/form.html"
    loc_username=By.ID,"username"  #文本框
    loc_pwd=By.ID,"pwd" #密码框
    loc_sex="sex" #对于单选按钮，定位特征给name属性的值
    loc_guoji="guoji"
    loc_aihao="aihao" #对于复选框，定位特征给name属性的值
    loc_degree="degree" #对于下拉列表，定位特征给name属性的值
    loc_jiesao=By.ID,"jiesao" #多行文本框
    loc_zaopian=By.ID,"zaopian" #文件筐
    loc_regButton=By.CSS_SELECTOR,"input[value='注册']"



    #初始化
    def __init__(self,driver,base_url):
        PageBase.__init__(self,driver,base_url)

    #各种业务函数
    #函数：打开当前页面
    def openUrl(self):
        self.open(PageForm.url)

    #函数：输入账号
    def inputZanhao(self,data):
        self.input(PageForm.loc_username,data)

    #函数：输入密码
    def inputPwd(self,data):
        self.input(PageForm.loc_pwd,data)

    #函数：输入性别
    def inputSex(self,sex):#sex：某选项的value属性
        self.selectRaidoOption(PageForm.loc_sex,sex)
    #函数：输入国籍
    def inputGuoji(self,guoji):#某选项的value属性
        self.selectRaidoOption(PageForm.loc_guoji,guoji)

    #函数：输入爱好
    def inputAihao(self,aihaos):#选中的选项的values
        self.selectCheckBoxOptions(PageForm.loc_aihao,aihaos)

    #函数：输入学历
    def inputDegree(self,degree):#选中的选项的文本内容
        self.selectSelectOption(PageForm.loc_degree,degree)
    #函数：输入自我介绍
    def inputJiesao(self,data):
        self.input(PageForm.loc_jiesao,data)

    #函数：输入照片
    def inputZaopian(self,zaopian):#上传的文件的路径：C:\\A\\1.png或多个
        # self.uploadFiles1(PageForm.loc_zaopian,zaopian)
        self.uploadFiles2(PageForm.loc_zaopian,zaopian)

    #函数：输入生日
    def inputBirthday(self,birthday):#类似'2001-01-01'
        id="birthday"
        js=f"document.getElementById('{id}').value='{birthday}'"
        self.driver.execute_script(js)

    #函数：点击注册按钮
    def click_regButton(self):
        self.click(PageForm.loc_regButton)
